﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;

namespace ExcelReader
{
    public class ClassReader
    {
        public enum enumTipoExcel
        {
            Excel97_2003,
            Excel2007_2013
        }

        public DataTable LerExcel(string caminho, enumTipoExcel tipo, string nomePlanilha)
        {
            string strConexao = string.Empty;
            
            switch (tipo)
            {
                case enumTipoExcel.Excel97_2003:
                    strConexao = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + caminho + ";Extended Properties=\"Excel 8.0;HDR=NO\";";
                    break;
                case enumTipoExcel.Excel2007_2013:
                    strConexao = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + caminho + ";Extended Properties=\"Excel 12.0;HDR=NO\";";
                    break;
            }

            OleDbConnection conexao = null;
            DataSet ds = null;

            try
            {
                conexao = new OleDbConnection(strConexao);
                OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [" + nomePlanilha + "$]", conexao );
                ds = new DataSet(); 
                conexao.Open();
                adapter.Fill(ds);
            }
            catch (Exception ex)
            {
               Console.WriteLine("Erro ao ler o arquivo excel: " + ex.Message);
            }
            finally
            {
               conexao.Close();
            }

            return ds.Tables[0];
        }

        public bool ValidarExcelMXM(DataTable dt)
        {
            try
            {
                if (dt.Rows[0][0].ToString().Equals("Período:"))
                {
                    if (dt.Rows[1][0].ToString().Equals("Aquisição:") && dt.Rows[1][5].ToString().Equals("Saldo dos Itens Patrimoniais (R$)"))
                    {
                        if (dt.Rows[2][0].ToString().Equals("Empresa"))
                        {
                            string strHora = dt.Rows[2][12].ToString();
                            string strData = dt.Rows[2][14].ToString();

                            if (strHora.Contains("Hora:") && strData.Contains("Data:"))
                                return true;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Erro ao ler o arquivo excel: " + ex.Message);
            }

            return false;
        }

        public void InserirNaBase(DataTable dt)
        {
            foreach (DataRow linha in dt.Rows)
            {

            }
        }

    }
}
